gulp-uglify ![](https://img.shields.io/travis/terinjokes/gulp-uglify/master.svg?label=Travis%20CI&style=flat-square)
![](https://img.shields.io/appveyor/ci/terinjokes/gulp-uglify/master.svg?label=AppVeyor&style=flat-square)
![](https://img.shields.io/npm/dm/gulp-uglify.svg?style=flat-square)
![](https://img.shields.io/npm/v/gulp-uglify.svg?style=flat-square)
![](https://img.shields.io/coveralls/terinjokes/gulp-uglify/master.svg?style=flat-square)
Minify JavaScript with UglifyJS2.
Installation
Install package with NPM and add it to your development dependencies:
npm install --save-dev gulp-uglify
Usage
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var pump = require('pump');
gulp.task('compress', function (cb) {
pump([
gulp.src('lib/*.js'),
uglify(),
gulp.dest('dist')
],
cb
);
});
To help properly handle error conditions with Node streams, this project
recommends the use of pump
. For more
information, see Why Use Pump?.
Options
-
mangle
Pass false
to skip mangling names.
-
output
Pass an object if you wish to specify additional output
options. The defaults are
optimized for best compression.
-
compress
Pass an object to specify custom compressor
options. Pass false
to skip
compression completely.
-
preserveComments
A convenience option for options.output.comments
. Defaults to preserving no
comments.
-
all
Preserve all comments in code blocks
-
license
Attempts to preserve comments that likely contain licensing information,
even if the comment does not have directives such as @license
or /*!
.
Implemented via the uglify-save-license
module, this option preserves a comment if one of the following is true:
- The comment is in the first line of a file
- A regular expression matches the string of the comment.
For example:
MIT
, @license
, or Copyright
. - There is a comment at the previous line, and it matches 1, 2, or 3.
-
function
Specify your own comment preservation function. You will be passed the
current node and the current comment and are expected to return either
true
or false
.
-
some
(deprecated)
Preserve comments that start with a bang (!
) or include a Closure Compiler
directive (@preserve
, @license
, @cc_on
).
Deprecated in favor of the license
option, documented above.
You can also pass the uglify
function any of the options listed
here to modify
UglifyJS's behavior.
Errors
gulp-uglify
emits an 'error' event if it is unable to minify a specific file.
Wherever possible, the PluginError object will contain the following properties:
fileName
lineNumber
message
Using a Different UglifyJS
By default, gulp-uglify
uses the version of UglifyJS installed as a dependency.
It's possible to configure the use of a different version using the "minifier" entry point.
var uglifyjs = require('uglify-js');
var minifer = require('gulp-uglify/minifier');
var pump = require('pump');
gulp.task('compress', function (cb) {
var options = {
preserveComments: 'license'
};
pump([
gulp.src('lib/*.js'),
minifier(options, uglifyjs),
gulp.dest('dist')
],
cb
);
});